package com.smart.service.business;

import com.smart.mybatis.service.BaseService;
import com.smart.entity.business.JwznWatDataEntity;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * wat Service
 *
 * @author wf
 * @since 2025-05-13 17:29:18
 */
public interface JwznWatDataService extends BaseService<JwznWatDataEntity> {

    /**
     * 获取一天的折线图数据
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 折线图数据
     */
    List<Map<String, Integer>> getBarChartDataBy2Time(LocalDateTime startTime, LocalDateTime endTime);

    List<Map<String, Object>> getYesterLineChartData(String name);

    /**
     * 获取一天的折线图数据
     * @param name 电表名称
     * @return 折线图数据
     */
    List<Map<String, Object>> getDailyLineChartData(String name);

    /**
     * 获取一周的折线图数据
     * @param name 电表名称
     * @return 折线图数据
     */
    List<Map<String, Object>> getWeeklyLineChartData(String name);

    /**
     * 获取一月的折线图数据
     * @param name 电表名称
     * @return 折线图数据
     */
    List<Map<String, Object>> getMonthlyLineChartData(String name);

    /**
     * 根据数据层级名称获取饼状图数据
     * @param dataLevelName 数据层级名称
     * @return 饼状图数据
     */
    List<Map<String, Object>> getYesterPieChartDataByLevel(String dataLevelName);

    List<Map<String, Object>> getDailyPieChartDataByLevel(String dataLevelName);

    List<Map<String, Object>> getWeeklyPieChartDataByLevel(String dataLevelName);

    List<Map<String, Object>> getMonthlyPieChartDataByLevel(String dataLevelName);


    /**
     * 获取电表的消耗统计数据(当日、当周、当月、当年)
     *
     * @param name 电表名称
     * @return 包含消耗统计数据的Map
     */
    Double getDailyConsumptionStats(String name);

    Double getYesterConsumptionStats(String name);

    Double getWeeklyConsumptionStats(String name);

    Double getMonthlyConsumptionStats(String name);

}

